home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 3.7 KB | 112 lines |
- 100 CLS :REM "MICRO"
- 110 PRINT TAB(32);"**** MICRO ****"
- 120 PRINT :PRINT "PROGRAM TO COMPUTE INDUCTIVE AND CAPACITIVE ELEMENTS USING MICROSTRIP TECHNIQUES" :PRINT
- 130 PRINT :BEEP :INPUT "ENTER OPERATING FREQUENCY (Mhz)";FO
- 140 PRINT :BEEP :INPUT "ENTER BOARD THICKNESS (MILS)";T
- 150 PRINT :BEEP :INPUT "ENTER RELATIVE DIELECTRIC CONSTANT (Er)";E
- 160 PRINT :BEEP :INPUT "ENTER Zo OF THE LINE TO BE USED (ohms)";Z
- 170 PI =4*ATN(1) :GOSUB 1050
- 180 CLS :PRINT "LINE WIDTH=";W;"mils"
- 190 PRINT :PRINT :BEEP :PRINT "ENTER ELEMENT NEEDED L or C use Z to CHANGE Zo "
- 200 A$=INKEY$ :IF A$="" THEN 200
- 210 EP=(E+1)/2+(E-1)/2*(1+10/(W/H))^-0.5
- 220 VP=EP^-0.5 :LG=300*39.37*VP/FO
- 230 IF A$="L" THEN 260
- 240 IF A$="C" THEN 660
- 250 IF A$="Z" THEN 160 ELSE 200
- 260 PRINT :BEEP :INPUT "ENTER INDUCTANCE REQUIRED (nh)";A
- 270 XL=2*PI*FO*10^6*A*10^-9 :D=57.296*ATN(XL/Z)
- 280 IF D>50 THEN 610
- 290 IND=D*LG/360
- 300 IND=INT(IND*1000)/1000 :IF IND<0.01 THEN 610
- 310 XL=INT(XL*100)/100
- 320 CLS :PRINT " FO=";FO;"Mhz"
- 330 PRINT :PRINT "THK=";T;"mils"
- 340 PRINT :PRINT "Er =";E
- 350 PRINT :PRINT "Zo =";Z;"ohms"
- 360 PRINT :PRINT "WTH=";W;"mils"
- 370 PRINT :PRINT " L=";A;"nh"
- 380 PRINT "------- -------"
- 390 PRINT " | |"
- 400 PRINT " -----------------"
- 410 PRINT " LENGTH=";IND;"inches"
- 420 PRINT " -----------------"
- 430 PRINT " | |"
- 440 PRINT "------- -------"
- 450 PRINT " XL=";XL;"ohms"
- 460 PRINT :PRINT :BEEP :PRINT "HARD COPY REQUIRED? (Y/N)"
- 470 P$=INKEY$ :IF P$="" THEN 470
- 480 IF P$="Y" THEN 500
- 490 IF P$="N" THEN 620 ELSE 470
- 500 LPRINT "Fo=";FO;"Mhz";"; THK.=";T;"mils";"; Er=";E;"; WIDTH=";W;"mils";"; Zo=";Z;"ohms" :LPRINT :LPRINT
- 510 FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
- 520 FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
- 530 LPRINT TAB(30);CHR$245;TAB(35);"L=";A;"nh";TAB(50);CHR$(245)
- 540 FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U
- 550 LPRINT TAB(31);"LENGTH=";IND;"inches"
- 560 FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U
- 570 LPRINT TAB(30);CHR$(245);TAB(34);"XL=";XL;"ohms";TAB(50);CHR$(245)
- 580 FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
- 590 FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
- 600 GOTO 620
- 610 PRINT :PRINT "ELEMENT IS INADVISABLE FOR THIS MATERIAL OR Zo" :GOTO 190
- 620 PRINT :PRINT :BEEP :PRINT "CONTINUE? (Y/N)"
- 630 B$=INKEY$ :IF B$="" THEN 630
- 640 IF B$="Y" THEN 190
- 650 IF B$="N" THEN END ELSE 630
- 660 PRINT :BEEP :INPUT "ENTER CAPACITANCE REQUIRED (pf)";B
- 670 XC=1/(2*PI*FO*10^6*B*10^-12)
- 680 D=90-(ATN(XC/Z)*57.296) :IF D>50 THEN 1000
- 690 C=D*LG/360 :C=INT(C*1000)/1000 :IF C<0.01 THEN 1000
- 700 XC=INT(XC*100)/100
- 710 CLS :PRINT " FO=";FO;"Mhz"
- 720 PRINT :PRINT "THK=";T;"mils"
- 730 PRINT :PRINT "Er =";E
- 740 PRINT :PRINT "Zo =";Z"ohms"
- 750 PRINT :PRINT "WTH=";W;"mils"
- 760 PRINT :PRINT " C=";B;"pf"
- 770 PRINT " --------------"
- 780 PRINT " | |"
- 790 PRINT "-------- --------"
- 800 PRINT " LENGTH=";C;"inches"
- 810 PRINT "-------- --------"
- 820 PRINT " | |"
- 830 PRINT " --------------"
- 840 PRINT " XC=";XC;"ohms"
- 850 PRINT :PRINT :BEEP :PRINT "HARD COPY REQUIRED? (Y/N)"
- 860 P$=INKEY$ :IF P$="" THEN 860
- 870 IF P$="Y" THEN 890
- 880 IF P$="N" THEN 1010 ELSE 860
- 890 LPRINT "Fo=";FO;"Mhz";"; THK.=";T;"mils";"; Er=";E;"; WIDTH=";W;"mils";"; Zo=";Z;"ohms" :LPRINT :LPRINT
- 900 FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U
- 910 LPRINT TAB(30);CHR$(245);TAB(35);"C=";B;"pf";TAB(50);CHR$(245)
- 920 FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
- 930 FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
- 940 LPRINT TAB(31);"LENGTH=";C;"inches"
- 950 FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
- 960 FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
- 970 LPRINT TAB(30);CHR$(245);TAB(34);"XC=";XC;"ohms";TAB(50);CHR$(245)
- 980 FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U
- 990 GOTO 1010
- 1000 PRINT :PRINT "ELEMENT IS INADVISABLE FOR THIS MATERIAL OR Zo" :GOTO 190
- 1010 PRINT :PRINT :BEEP :PRINT "CONTINUE? (Y/N)"
- 1020 C$=INKEY$ :IF C$="" THEN 1020
- 1030 IF C$="Y" THEN 190
- 1040 IF C$="N" THEN END ELSE 1020
- 1050 H=T-2.8 :W=592/(Z*SQR(E))
- 1060 W=0.64*(W-1-LOG(2*W-1)+0.5*(1-1/E)*(0.293+LOG(W-1)-0.517/E))
- 1070 WA=H*W :W=INT(WA+0.5)
- 1080 S=W+2 :Y=-1
- 1090 FOR W=S TO 10 STEP Y
- 1100 WE=W+(1.4/PI)*LOG(2*H/1.4+1)
- 1110 X=377*H/(E^0.5*WE*(1+(1.735*E^-0.0724)*(WE/H)^-0.836))
- 1120 IF W>1500 THEN 1190
- 1130 IF X<Z THEN 1160
- 1140 IF X=Z THEN 1200
- 1150 IF X>Z THEN 1170
- 1160 NEXT W
- 1170 IF W<10 THEN 1190
- 1180 GOTO 1200
- 1190 PRINT :PRINT "Zo ENTERED IS NOT VALID FOR THIS MATERIAL" :PRINT :GOTO 160
- 1200 RETURN
-